// #include<iostream>
// using namespace std;

// // class student{
// // //--------------在类中， 成员方法在前，成员变量在后
// // public:
// //     void ShowInfo(){
// //         cout << _name << endl;
// //         cout << _age << endl;
// //         cout << _stuid << endl;
// //     }
// // // private:
// //     char* _name;
// //     int _age;
// //     int _stuid;

// // };
// // int main(){
// //     student stu1;
// //     stu1._age = 10;
// //     stu1._name = "冯家睿";
// //     stu1._stuid = 1;
// //     stu1.ShowInfo();
// //     return 0;
// // }

// class Stack{
// public://-----------相当于类的声明（相当于一个承诺），这个时候不开空间
//     void push(int x){
//         //。。。。类里面定义方法
//     }
//     void Pop();
//     void Empty();

//     private:
//     int* _a;
//     int _size;
//     int _capacity;    
// };
// void Stack::Pop(){
//     //......在类外面定义方法，注意Stack::这个符号
// }
// int main1(){
//     Stack st;//------------相当于一个定义（相当于完成承诺），只有这样才能开空间。

//     cout << sizeof(st) << endl;//----对象中只存储成员变量，不存储成员函数
//                                //----如果类中没有成员变量，那么就是1个字节
//     return 0;
// }

// //-------------------------------------------------------

// // class Data{
// // public:
// //     void Init(int year, int month, int day){
// //         _year = year;
// //         _month = month;
// //         _day = day;
// //     }
// //     void Print(){
// //         cout << _year << "-" << _month << "-" << _day << endl;
// //     }
// //     /*隐含的this指针
// //         void Print(Data* this){
// //         cout << this->_year << "-" << this->_month << "-" << this->_day << endl;
// //         }
// //     而调用函数相当于
// //         d1.Print(&d1);
// //     */
// // private://-----------设为私有变量，然后用方法来初始化
// //     int _year;//---私有变量在类里面访问不受限制，在类外面访问有private的约束
// //     int _month;
// //     int _day;
// // };

// //------------------构造函数
// // class Data{
// // public:
// //     //----构造函数自动调用
// //     Data(int year, int month, int day){//----传参的形式
// //         _year = year;
// //         _month = month;
// //         _day = day;
// //     }
// //     Data(){//--------------无参的形式
// //         _year = 1;
// //         _month = 1;
// //         _day = 1;
// //     }
// //     Data(int year = 1, int month = 1, int day = 1){//----传参加无参，全缺省函数
// //         _year = year;
// //         _month = month;
// //         _day = day;
// //     }
// //     void Print(){
// //         cout << _year << "-" << _month << "-" << _day << endl;
// //     }
// // private:
// //     int _year;
// //     int _month;
// //     int _day;
// // };
// // int main1 (){
// //     Data d1(2024, 10, 10);//类的有参初始化方法
// //     d1.Print();

// //     Data d2;//类的无参初始化方法
// //     d2.Print();
// //     return 0;
// // }

// //------------析构函数

// int main(){

//     //--析构：对象的生命周期到了之后，自动调用，完成对象里面的清理工作，不是d1d2的销毁
//     // Data d1;
//     // Data d2;



//     // return 0;
// }

#include<iostream>
using namespace std;

// class A1{
// private:
//     int _a;
//     char _c;
// };

// class A2{
// public:
//     void my_func(){}
// };

// class A3{};

// int main(){
//     cout << sizeof(A1) << endl;
//     cout << sizeof(A3) << endl;
//     cout << sizeof(A2) << endl;

//     A1 a1 = {a, 'c'};
//     return 0;
// }

class Time{
public:
    //全缺省
    Time(int year = 0, int month = 0, int day = 0){
        _year = year;
        _month = month;
        _day = day;
    }
    // //构造函数的重载    
    // Time(){
    //     _year = 2025;
    //     _month = 12;
    //     _day = 12;
    // }
    void print(){
        cout << _year << "-" << _month << "-" << _day << endl; 
    }

private:
    int _year;
    int _month;
    int _day;
};

int main(){
    Time time1(2025, 1, 21);
    Time time2;//不带参数的对象实例化不能加括号
    time1.print();
    time2.print();
}